/**
 * @author LKQ
 * @date 2022/1/14 11:28
 * @description 偶数个的字母可以任意添加，奇数个则只能添加一个最长的
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.longestPalindrome("abccccdd"));
    }
    public int longestPalindrome(String s) {
        // 计数
        int[] count = new int[128];
        for (char c: s.toCharArray()) {
            // 每个字母出现次数
            count[c]++;
        }

        int ans = 0;
        for (int v: count) {
            // 对于每个出现的字母，ans为先总是偶数，如果u第一次为奇数个，ans+1变奇数，后面不能再加
            ans += v / 2 * 2;
            if (v % 2 == 1 && ans % 2 == 0) {
                ans++;
            }
        }
        return ans;
    }
}
